package com.xiangxiao.rpan.settings.dto;

import com.xiangxiao.rpan.settings.enums.FileClickModeEnum;
import com.xiangxiao.rpan.settings.enums.LoginVerifyModeEnum;
import com.xiangxiao.rpan.settings.enums.RefererTypeEnum;
import lombok.Data;

import java.io.Serializable;

/**
 * @auther xiangxiao
 * @email 573768011@qq.com
 * @data 2023/6/9 16:03
 */
@Data
public class SystemConfigDTO implements Serializable {
  private static final long serialVersionUID = -3512468989200279343L;
  private Integer id;

  private String siteName; // 站点名称

  private String username; // 用户名

  private String avatar; // 头像地址

  private String icp; // 备案号

  private String password;

  private String domain; //站点域名

  private String customJs; // 自定义js

  private String customCss; // 自定义 CSS

  private String tableSize; // 列表尺寸

  private Boolean showDocument; // 是否显示文档区

  private String announcement; // 网站公告

  private Boolean showAnnouncement; // 是否展示网站公告

  private String layout; // 页面布局, full:全屏,center:居中

  private Boolean showLinkBtn; // 是否显示生成直链功能(含直链和路径短链)

  private Boolean showShortLink; // 是否显示生成短链功能

  private Boolean showPathLink; // 是否显示生成路径链接功能

  private Boolean installed; // 是否已初始化

  private String customVideoSuffix; // 自定义视频文件后缀格式

  private String customImageSuffix; // 自定义图像文件后缀格式

  private String customAudioSuffix; // 自定义音频文件后缀格式

  private String customTextSuffix; // 自定义文本文件后缀格式

  private String directLinkPrefix; // 直链地址前缀

  private RefererTypeEnum refererType; // 直链 Referer 防盗链类型

  private Boolean recordDownloadLog; // 是否记录下载日志

  private Boolean refererAllowEmpty; // 直链 Referer 是否允许为空

  private String refererValue; // 直链 Referer 值

  private LoginVerifyModeEnum loginVerifyMode; // 登陆验证方式，支持验证码和 2FA 认证

  private String loginVerifySecret; // 登陆验证 Secret

  private Boolean rootShowStorage; // 前端域名(前端域名，前后端分离情况下需要配置)

  private String frontDomain; // 前端域名，前后端分离情况下需要配置

  private Boolean showLogin; // 是否在前台显示登陆按钮

  private String rsaHexKey; // RAS Hex Key

  private FileClickModeEnum fileClickMode; // 默认文件点击习惯

  private Integer maxFileUploads; // 最大同时上传文件数

  private String onlyOfficeUrl; // onlyOffice 在线预览地址

  private Boolean allowPathLinkAnonAccess; // 是否允许路径直链可直接访问

  private Integer maxShowSize; // 默认最大显示文件数

  private Integer loadMoreSize; // 每次加载更多文件数

  private String defaultSortField; // 默认排序字段

  private String defaultSortOrder; // 默认排序方向

  private String siteHomeName; // 站点 Home 名称

  private String siteHomeLogo; // 站点 Home Logo

  private String siteHomeLogoLink; // 站点 Logo 点击后链接

  private String siteHomeLogoTargetMode; // 站点 Logo 链接打开方式

  private Integer linkLimitSecond; // 限制直链下载秒数

  private Integer linkDownloadLimit; // 限制直链下载次数
}
